package br.com.flexdev.persistence.dao;

import java.util.Collection;

import org.hibernate.Query;

import br.com.flexdev.business.vo.PaisVO;
import br.com.flexdev.persistence.BD;

public class DaoPais implements IDao {

	private BD bd;
	private PaisVO pais;
	
	public DaoPais() throws Exception{
		super();
		this.init();
	}
	
	public void init() throws Exception{
		this.setPais(new PaisVO());
		this.bd = BD.getInstance();
	}
	
	public void excluir() throws Exception {
		bd.excluir(this.pais);
	}

	public Collection<?> listarTodos() throws Exception {
		return bd.obterLista(this.pais);
	}

	public PaisVO salvar() throws Exception {
		return (PaisVO) bd.salvar(this.pais);
	}
	
	public PaisVO obter() throws Exception {
		return (PaisVO) bd.obter(this.pais, String.valueOf(this.pais.getIdPais()));
	}
	
	public Collection<?> obterPaisDs(Query p_query) throws Exception {
		return bd.queryTag(p_query);
	}
	
	public Collection<?> obterListarFilhos(Object p_objFilho, String p_atrFilhoOrdenar) throws Exception {
		return bd.obterListaFilhos(pais, p_objFilho, p_atrFilhoOrdenar);
	}

	public Collection<?> obterListaLike() throws Exception {
		return bd.obterListaLike(this.pais);
	}
	
	public Collection<?> obterLista() throws Exception {
		return bd.obterLista(this.pais);
	}
	
	public void setPais(PaisVO p_Pais){
		this.pais = p_Pais;
	}
	
	public PaisVO getPais(){
		return this.pais;
	}
}
